package com.example.commom.utils;

import com.example.feign.client.AdminClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

/**
 * 管理员的相关公用方法
 */
@Component
public class AdminVerifyUtils {

    @Autowired
    private AdminClient adminClient;

    /**
     *  确认登录用户是否是管理员
     */
    public boolean verity(String token) {
        if (!StringUtils.hasLength(token)) {
            return false;
        }

        // 获取登录用户的 id 和 type
        String type = JwtUtils.getUserTypeByToken(token);
        if (!"2".equals(type)) {
            return false;
        }

        // 双重验证
        String adminId = JwtUtils.getUserIdByToken(token);
        if (adminId == null) {
            return false;
        }

        return adminClient.verifyIsAdmin(Long.parseLong(adminId));
    }
}
